package  main.java.leetcode.editor.cn;
//2022-12-03 21:38:19
//给你一个混合字符串 s ，请你返回 s 中 第二大 的数字，如果不存在第二大的数字，请你返回 -1 。 
//
// 混合字符串 由小写英文字母和数字组成。 
//
// 
//
// 示例 1： 
//
// 
//输入：s = "dfa12321afd"
//输出：2
//解释：出现在 s 中的数字包括 [1, 2, 3] 。第二大的数字是 2 。
// 
//
// 示例 2： 
//
// 
//输入：s = "abc1111"
//输出：-1
//解释：出现在 s 中的数字只包含 [1] 。没有第二大的数字。
// 
//
// 
//
// 提示： 
//
// 
// 1 <= s.length <= 500 
// s 只包含小写英文字母和（或）数字。 
// 
// Related Topics 哈希表 字符串 👍 46 👎 0

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

class SecondLargestDigitInAString {
    public static void main(String[] args) {
        //创建该题目的对象方便调用
        Solution solution = new SecondLargestDigitInAString().new Solution();
    }
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int secondHighest(String s) {

        Set<Integer> set = new HashSet<>();

        for(int i = 0;i<s.length();i++){
            if(s.charAt(i)>='0' && s.charAt(i)<='9'){
                set.add(s.charAt(i)-'0');
            }
        }

        Integer[] arr = set.toArray(new Integer[0]);
        Arrays.sort(arr);

        if(arr.length >= 2){
            return arr[arr.length-2].intValue();
        }

        return -1;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
